package com.wbcs.config.component;

import java.util.List;

import com.wbcs.config.OnloadMethodBean;
import com.wbcs.config.component.container.AbsContainerConfigBean;
import com.wbcs.config.component.container.page.PageBean;
import com.wbcs.config.component.other.ButtonsBean;
import com.wbcs.config.dataexport.DataExportsConfigBean;
import com.wbcs.config.dataexport.PDFExportBean;
import com.wbcs.config.print.AbsPrintProviderConfigBean;
import com.wbcs.config.template.TemplateBean;
import com.wbcs.system.ReportRequest;
import com.wbcs.system.component.IComponentType;
import com.wbcs.system.component.container.AbsContainerType;

public interface IComponentConfigBean
{
    public String getId();
    
    public String getGuid();//获取当前元素的唯一id，即包括其所在的<page/>的id

    public void setId(String id);
    
    public String getRefreshid();
    
    public void setRefreshid(String refreshid);
    
    public String getRefreshGuid();
    
    public String getTop();

    public void setTop(String top);

    public String getBottom();
    
    public void setBottom(String bottom);
    
    public String getLeft();

    public void setLeft(String left);

    public String getRight();
    
    public void setRight(String right);
    
    public String getAlign();

    public void setAlign(String align);

    public String getValign();

    public void setValign(String valign);
    
    public String getWidth();

    public void setWidth(String width);
    
    public String getHeight();

    public void setHeight(String height);
    
    public String getHeightMinusPx();
    
    public void setHeightMinusPx(String heightMinusPx);
    
    public void setScrollstyle(String scrollstyle);
    
    public String getScrollstyle();
    
    public String getTitle(ReportRequest rrequest);
    
    public void setTitle(String title);

    public String getSubtitle(ReportRequest rrequest);
    
    public void setSubtitle(String subtitle);
    
    public String getParenttitle(ReportRequest rrequest);
    
    public IComponentConfigBean getConfigBeanWithValidParentTitle();
    
    public void setParenttitle(String parenttitle);
    
    public void setParentSubtitle(String parentSubtitle);
    
    public String getParentSubtitle(ReportRequest rrequest);
    
    public String getPath();
    
    public void setTitlealign(String titlealign);
    
    public String getTitlealign();
    
    public boolean shouldShowContextMenu();
    
    public void setShowContextMenu(boolean showContextMenu);
    
    public TemplateBean getHeaderTplBean();

    public void setHeaderTplBean(TemplateBean headerTplBean);

    public TemplateBean getFooterTplBean();

    public void setFooterTplBean(TemplateBean footerTplBean);
    
    public AbsContainerConfigBean getParentContainer();
    
    public List<OnloadMethodBean> getLstOnloadMethods();
    
    public void addOnloadMethod(OnloadMethodBean onLoadMethodBean);
    
    public void removeOnloadMethodByType(String type);
    
    public String getOnloadMethodName();

    public ButtonsBean getButtonsBean();

    public void setButtonsBean(ButtonsBean buttonsBean);
    
    public PageBean getPageBean();

    public void setPrintBean(AbsPrintProviderConfigBean printBean);
    
    public AbsPrintProviderConfigBean getPrintBean();
    
    public PDFExportBean getPdfPrintBean();

    public void setPdfPrintBean(PDFExportBean pdfPrintBean);
    
    public IComponentConfigBean clone(AbsContainerConfigBean parentContainer);

    public DataExportsConfigBean getDataExportsBean();
    
    public void setDataExportsBean(DataExportsConfigBean decbean);
    
    public IComponentType createComponentTypeObj(ReportRequest rrequest,AbsContainerType parentContainer);
    
    public void doPostLoad();
    
    public void doPostLoadFinally();
}
